#include<bits/stdc++.h> 
using namespace std;
//	给定一个长度为N≥5的字符串，需要将其按照U的形状去输出例如，helloworld变成了
//	h  d
//  e  l
//  l  r
//  lowo，字符必须按照原始顺序，从上往下n1个字符，从左往右n2个字符，从下往上n3个字符。
//	我们更期望看到U像个正方形，所以需要做到n1 = n3 = max{k|k≤n2对于所有3≤n2≤N}并且
//	n1+n2+n3-2 = N
//1.每个输入包含一个测试用例，每个用例都有一个5~80个字符组成的不含空格的字符串
//2.对于每个输入，输出一个U形的结果
//3.字符串遍历
int main(){
	string s;
	cin>>s;
	int l = s.length();
	int n1, n2;
	if(l%2==1) n2 = 3;	//为了省时间，这里可以先分类一下n2，如果字符串总长度为偶数，则减去中间部分两端仍然为偶数的要求是中间部分为偶数，反之是奇数 
	else n2 = 4;
	for(;n2<l;n2=n2+2){
		n1 = (l - n2) / 2;	//求出n1的大小，这里的n1跟题目的n1不是同一个意思，这里并没有算上与底部重合的部分 
		if(n1+1 > n2) continue;	//所以这里判断的时候要写上n1+1，否则测试点5会错误 
		else{
			string mid = s.substr(n1,n2);	//截取3个部分 
			string left = s.substr(0,n1);
			string right = s.substr(n1+n2);
			string space = "";	//左右之间的空格 
			for(int i =0;i<n2-2;i++){
				space += " ";
			}
			for(int i = 0;i<n1;i++){	//首尾分别输出 
				cout<<left[i]<<space<<right[n1-i-1]<<endl;
			}
			cout<<mid<<endl;
			return 0;
		}
	}
	return 0;
} 